//
//  Augury.h
//  Calendar
//
//  Created by 曾玮 on 15/1/14.
//
//

#ifndef __Calendar__Augury__
#define __Calendar__Augury__

#include "DateUtils.h"
#include <string>
#import <Foundation/Foundation.h>

typedef enum
{
    GOLD = 0,
    WEAK_GOLD,
    WATER,
    WEAK_WATER,
    WOOD,
    WEAK_WOOD,
    FIRE,
    WEAK_FIRE,
    EARTH,
    WEAK_EARTH,
} Element5;

const char* getElementName(Element5 e);
bool oneGood4Other(Element5 one, Element5 other);
bool oneBad4Other(Element5 one, Element5 other);
bool mutualGood(Element5 one, Element5 other);
bool sameOrGood(Element5 one, Element5 other);

Element5 getStemElement(int i);
Element5 getBranchElement(int i);
Element5 calcuElement(const DateTime& dateTime); // calculate one's element out of birthday

int getStellarIndex(const Date& date); // get one's stellar index out of birthday
std::string getStellarName(int index);
const char* getStellaSub(int index);
const char* getStellaMeaning(int index);
const char* getStellaLife(int index);
const char* getStellaFate(int index);
const char* getStellaCharacter(int index);
const char* getStellaCareer(int index);
const char* getStellaFortune(int index);
const char* getStellaLove(int index);
const char* getStellaHealth(int index);
const char* getStellarOnlyName(int index);
const char* getDayName(int daySB, int birthDaySterm);
bool isGoodDay4Act(const Date& date, Element5 element, int act,int sex);

int getDayIndex(const Date& date, const Date& birthDate);
const char* getDayTitle(int dayIndex, bool isMale);
const char* getDaySummary(int dayIndex, bool isMale);
const char* getDayDetail(int dayIndex, bool isMale);

const char* getDayColor(int daySB, Element5 element);
const char* getDayColor(const Date& date, Element5 element);

//当世标题
const char* getThisWorldTitle(int oneCount, int sex);
//当世描述
const char* getThisWorldDesc(int oneCount, int sex);
//上一世你是什么
const char* getLastWorldTitle(int oneCount, int sex);
//上一世你的描述
const char* getLastWorldDesc(int oneCount, int sex);
//感情世界
const char* getLoveWorldDesc(int oneCount, int sex);
//给你的锦囊
const char* getGiveYouTips(int oneCount, int sex);

//感情表达能力
const char* getExpressionOfFeeling(int oneCount);
//直觉度
const char* getIntuitionDegree(int twoCount);
//思维能力和想象力
const char* getThinking(int threeCount);
//行动力
const char* getActivity(int fourCount);
//意志坚定度
const char* getFirmnessDegree(int fiveCount);
//自我价值
const char* getSelfValue(int sixCount);
//失恋治疗能力
const char* getLovelornTreat(int sevenCount);
//智力和逻辑性
const char* getIntelligenceAndLogic(int eightCount);
//体贴度
const char* getConsiderateDegree(int nineCount);
/*
 根据生日得到方位和日期
 
 */
const char* getPosition(int x_year, int x_month, int x_day, int bir_year, int bir_month, int bir_day, int bir_hour);
Element5 calcuElement(const Date& date, int hour);
int getDayIsGoodDay(const Date& date, const Date& birthDate,int sex);
//获取当天的十神
const char* getDaySBName(const Date& date, const Date& birthDate);
/*
 * 今日大事件
 * date 要计算的日期
 * birthDate 生日
 * isMale 性别 男：true,女：false
 *
 */
const char* getDayEvent(const Date& date, const Date& birthDate, bool isMale);

#endif /* defined(__Calendar__Augury__) */
